import 'package:get/get.dart';
import 'package:smart_devices/views/dept/select/select_binding.dart';
import 'package:smart_devices/views/dept/select/select_view.dart';
import 'package:smart_devices/views/device/add/add_binding.dart';
import 'package:smart_devices/views/device/add/add_view.dart';
import 'package:smart_devices/views/device/details/details_binding.dart';
import 'package:smart_devices/views/device/details/details_view.dart';
import 'package:smart_devices/views/device/document/document_binding.dart';
import 'package:smart_devices/views/device/document/document_view.dart';
import 'package:smart_devices/views/device/info/info_binding.dart';
import 'package:smart_devices/views/device/info/info_view.dart';
import 'package:smart_devices/views/device/inspection/record/record_binding.dart';
import 'package:smart_devices/views/device/inspection/record/record_view.dart';
import 'package:smart_devices/views/device/inventory/list/list_binding.dart';
import 'package:smart_devices/views/device/inventory/list/list_view.dart';
import 'package:smart_devices/views/device/inventory/task/task_binding.dart';
import 'package:smart_devices/views/device/inventory/task/task_view.dart';
import 'package:smart_devices/views/device/list/list_binding.dart';
import 'package:smart_devices/views/device/list/list_view.dart';
import 'package:smart_devices/views/device/location/location_binding.dart';
import 'package:smart_devices/views/device/location/location_view.dart';
import 'package:smart_devices/views/device/maintain/info/info_binding.dart';
import 'package:smart_devices/views/device/maintain/info/info_view.dart';
import 'package:smart_devices/views/device/maintain/order/order_binding.dart';
import 'package:smart_devices/views/device/maintain/order/order_view.dart';
import 'package:smart_devices/views/device/maintain/record/record_binding.dart';
import 'package:smart_devices/views/device/maintain/record/record_view.dart';
import 'package:smart_devices/views/device/maintained/maintained_binding.dart';
import 'package:smart_devices/views/device/maintained/maintained_view.dart';
import 'package:smart_devices/views/device/modify/modify_binding.dart';
import 'package:smart_devices/views/device/modify/modify_view.dart';
import 'package:smart_devices/views/device/picture/picture_binding.dart';
import 'package:smart_devices/views/device/picture/picture_view.dart';
import 'package:smart_devices/views/device/repair/details/details_binding.dart';
import 'package:smart_devices/views/device/repair/details/details_view.dart';
import 'package:smart_devices/views/device/repair/info/info_binding.dart';
import 'package:smart_devices/views/device/repair/info/info_view.dart';
import 'package:smart_devices/views/device/repair/order/order_binding.dart';
import 'package:smart_devices/views/device/repair/order/order_view.dart';
import 'package:smart_devices/views/device/repair/record/record_binding.dart';
import 'package:smart_devices/views/device/repair/record/record_view.dart';
import 'package:smart_devices/views/device/screen/screen_binding.dart';
import 'package:smart_devices/views/device/screen/screen_view.dart';
import 'package:smart_devices/views/device/spare/details/details_binding.dart';
import 'package:smart_devices/views/device/spare/details/details_view.dart';
import 'package:smart_devices/views/device/spare/info/info_binding.dart';
import 'package:smart_devices/views/device/spare/info/info_view.dart';
import 'package:smart_devices/views/device/spare/part/part_binding.dart';
import 'package:smart_devices/views/device/spare/part/part_view.dart';
import 'package:smart_devices/views/device/spare/particulars/particulars_binding.dart';
import 'package:smart_devices/views/device/spare/particulars/particulars_view.dart';
import 'package:smart_devices/views/device/spare/screen/screen_binding.dart';
import 'package:smart_devices/views/device/spare/screen/screen_view.dart';
import 'package:smart_devices/views/device/supplier/supplier_binding.dart';
import 'package:smart_devices/views/device/supplier/supplier_view.dart';
import 'package:smart_devices/views/device/unmaintained/unmaintained_binding.dart';
import 'package:smart_devices/views/device/unmaintained/unmaintained_view.dart';
import 'package:smart_devices/views/device/upkeep/info/info_binding.dart';
import 'package:smart_devices/views/device/upkeep/info/info_view.dart';
import 'package:smart_devices/views/device/upkeep/record/record_binding.dart';
import 'package:smart_devices/views/device/upkeep/record/record_view.dart';
import 'package:smart_devices/views/device/upkeep/task/task_binding.dart';
import 'package:smart_devices/views/device/upkeep/task/task_view.dart';
import 'package:smart_devices/views/home/home_binding.dart';
import 'package:smart_devices/views/home/home_view.dart';
import 'package:smart_devices/views/login/login_binding.dart';
import 'package:smart_devices/views/login/login_view.dart';
import 'package:smart_devices/views/message/list/list_binding.dart';
import 'package:smart_devices/views/message/list/list_view.dart';
import 'package:smart_devices/views/mine/inspect/inspect_binding.dart';
import 'package:smart_devices/views/mine/inspect/inspect_view.dart';
import 'package:smart_devices/views/mine/maintain/maintain_binding.dart';
import 'package:smart_devices/views/mine/maintain/maintain_view.dart';
import 'package:smart_devices/views/mine/repair/repair_binding.dart';
import 'package:smart_devices/views/mine/repair/repair_view.dart';
import 'package:smart_devices/views/mine/upkeep/upkeep_binding.dart';
import 'package:smart_devices/views/mine/upkeep/upkeep_view.dart';
import 'package:smart_devices/views/purchase/order/order_binding.dart';
import 'package:smart_devices/views/purchase/order/order_view.dart';
import 'package:smart_devices/views/scan/scan_binding.dart';
import 'package:smart_devices/views/scan/scan_view.dart';

class Routes {
  Routes._();

  ///首页
  static const String home = '/';

  /// 扫码
  static const String scan = '/scan';

  /// 设备详情
  static const String deviceInfo = '/device/info';

  /// 设备列表
  static const String deviceList = '/device/list';

  /// 设备筛选
  static const String deviceScreen = '/device/screen';

  /// 新增设备
  static const String deviceAdd = '/device/add';

  /// 设备存放位置
  static const String deviceLocation = '/device/location';

  /// 设备供应商
  static const String deviceSupplier = '/device/supplier';

  /// 设备信息
  static const String deviceDetails = '/device/details';

  /// 设备编辑
  static const String deviceModify = '/device/modify';

  /// 设备已保养
  static const String deviceMaintained = '/device/maintained';

  /// 设备未保养
  static const String deviceUnmaintained = '/device/unmaintained';

  /// 关联备件
  static const String deviceSparePart = '/device/spare/part';

  /// 备件筛选
  static const String deviceSpareScreen = '/device/spare/screen';

  /// 设备备件详情
  static const String deviceSpareDetails = '/device/spare/details';

  /// 设备备件明细
  static const String deviceSpareInfo = '/device/spare/info';

  /// 设备备件明细(申请备件)
  static const String deviceSpareParticulars = '/device/spare/particulars';

  /// 设备备件维修工单
  static const String deviceRepairOrder = '/device/repair/order';

  /// 设备备件维修工单详情
  static const String deviceRepairInfo = '/device/repair/info';

  /// 设备报修记录
  static const String deviceRepairRecord = '/device/repair/record';

  /// 设备报修详情
  static const String deviceRepairDetails = '/device/repair/details';

  /// 设备备件保养任务
  static const String deviceUpkeepTask = '/device/upkeep/task';

  /// 设备备件保养任务详情
  static const String deviceUpkeepInfo = '/device/upkeep/info';

  /// 保养记录
  static const String deviceUpkeepRecord = '/device/upkeep/record';

  /// 设备备件保养工单
  static const String deviceMaintainOrder = '/device/maintain/order';

  /// 设备备件保养工单详情
  static const String deviceMaintainInfo = '/device/maintain/info';

  /// 设备 维系记录
  static const String deviceMaintainRecord = '/device/maintain/record';

  /// 设备图片
  static const String devicePicture = '/device/picture';

  /// 设备文档
  static const String deviceDocument = '/device/document';

  /// 巡检记录
  static const String deviceInspectionRecord = '/device/inspection/record';

  /// 设备盘点
  static const String deviceInventoryList = '/device/inventory/list';

  /// 盘点任务
  static const String deviceInventoryTask = '/device/inventory/task';

  /// 部门人员选择
  static const String deptSelect = '/dept/select';

  /// 采购订单
  static const String purchaseOrder = '/purchase/order';

  /// 我的报修
  static const String mineRepair = '/mine/repair';

  /// 我的维修
  static const String mineMaintain = '/mine/maintain';

  /// 我的保养
  static const String mineUpkeep = '/mine/upkeep';

  /// 我的点检巡检
  static const String mineInspect = '/mine/inspect';

  /// 消息列表
  static const String messageList = '/message/list';

  /// 登录页面
  static const String login = '/login';

  static final List<GetPage> pages = [
    GetPage(name: home, binding: HomeBinding(), page: () => const HomeView()),
    GetPage(name: scan, binding: ScanBinding(), page: () => const ScanQrView()),
    GetPage(
      name: deviceInfo,
      binding: DeviceInfoBinding(),
      page: () => const DeviceInfoView(),
    ),
    GetPage(
      name: deviceList,
      binding: DeviceListBinding(),
      page: () => const DeviceListView(),
    ),
    GetPage(
      name: deviceScreen,
      binding: DeviceScreenBinding(),
      page: () => const DeviceScreenView(),
    ),
    GetPage(
      name: deviceAdd,
      binding: DeviceAddBinding(),
      page: () => const DeviceAddView(),
    ),
    GetPage(
      name: deviceLocation,
      binding: DeviceLocationBinding(),
      page: () => const DeviceLocationView(),
    ),
    GetPage(
      title: '供应商',
      name: deviceSupplier,
      binding: DeviceSupplierBinding(),
      page: () => const DeviceSupplierView(),
    ),
    GetPage(
      title: '设备详情',
      name: deviceDetails,
      binding: DeviceDetailsBinding(),
      page: () => const DeviceDetailsView(),
    ),
    GetPage(
        title: '编辑设备信息',
        name: deviceModify,
        binding: DeviceModifyBinding(),
        page: () => const DeviceModifyView()),
    GetPage(
        title: '设备已保养',
        name: deviceMaintained,
        binding: DeviceMaintainedBinding(),
        page: () => const DeviceMaintainedView()),
    GetPage(
        title: '设备未保养',
        name: deviceUnmaintained,
        binding: DeviceUnmaintainedBinding(),
        page: () => const DeviceUnmaintainedView()),
    GetPage(
        title: '关联备件',
        name: deviceSparePart,
        binding: DeviceSparePartBinding(),
        page: () => const DeviceSparePartView()),
    GetPage(
        title: '备件筛选',
        name: deviceSpareScreen,
        binding: DeviceSpareScreenBinding(),
        page: () => const DeviceSpareScreenView()),
    GetPage(
        title: '关联备件详情',
        name: deviceSpareDetails,
        binding: SpareDetailsBinding(),
        page: () => const SpareDetailsView()),
    GetPage(
        title: '备件明细',
        name: deviceSpareInfo,
        binding: SpareInfoBinding(),
        page: () => const SpareInfoView()),
    GetPage(
        title: '备件明细',
        name: deviceSpareParticulars,
        binding: SpareParticularsBinding(),
        page: () => const SpareParticularsView()),
    GetPage(
        title: '维修工单',
        name: deviceRepairOrder,
        binding: RepairOrderBinding(),
        page: () => const RepairOrderView()),
    GetPage(
        title: '工单详情',
        name: deviceRepairInfo,
        binding: RepairInfoBinding(),
        page: () => const RepairInfoView()),
    GetPage(
        title: '报修记录',
        name: deviceRepairRecord,
        binding: RepairRecordBinding(),
        page: () => const RepairRecordView()),
    GetPage(
        title: '报修详情',
        name: deviceRepairDetails,
        binding: RepairDetailsBinding(),
        page: () => const RepairDetailsView()),
    GetPage(
        title: '保养任务',
        name: deviceUpkeepTask,
        binding: UpkeepTaskBinding(),
        page: () => const UpKeepTaskView()),
    GetPage(
        title: '保养任务详情',
        name: deviceUpkeepInfo,
        binding: UpkeepInfoBinding(),
        page: () => const UpkeepInfoView()),
    GetPage(
        title: '保养记录',
        name: deviceUpkeepRecord,
        binding: UpkeepRecordBinding(),
        page: () => const UpkeepRecordView()),
    GetPage(
        title: '保养工单',
        name: deviceMaintainOrder,
        binding: MaintainOrderBinding(),
        page: () => const MaintainOrderView()),
    GetPage(
        title: '保养工单',
        name: deviceMaintainInfo,
        binding: MaintainInfoBinding(),
        page: () => const MaintainInfoView()),
    GetPage(
        title: '保养工单',
        name: deviceMaintainRecord,
        binding: MaintainRecordBinding(),
        page: () => const MaintainRecordView()),
    GetPage(
        title: '设备图片',
        name: devicePicture,
        binding: DevicePictureBinding(),
        page: () => const DevicePictureView()),
    GetPage(
        title: '设备图片',
        name: deviceDocument,
        binding: DeviceDocumentBinding(),
        page: () => const DeviceDocumentView()),
    GetPage(
        title: '巡检记录',
        name: deviceInspectionRecord,
        binding: InspectionRecordBinding(),
        page: () => const InspectionRecordView()),
    GetPage(
        title: '设备盘点',
        name: deviceInventoryList,
        binding: InventoryListBinding(),
        page: () => const InventoryListView()),
    GetPage(
        title: '盘点任务',
        name: deviceInventoryTask,
        binding: InventoryTaskBinding(),
        page: () => const InventoryTaskView()),
    GetPage(
      title: '部门人员选择',
      name: deptSelect,
      binding: DeptSelectBinding(),
      page: () => const DeptSelectView(),
    ),
    GetPage(
      title: '采购订单',
      name: purchaseOrder,
      binding: PurchaseOrderBinding(),
      page: () => const PurchaseOrderView(),
    ),
    GetPage(
      title: '我的报修',
      name: mineRepair,
      binding: MineRepairBinding(),
      page: () => const MineRepairView(),
    ),
    GetPage(
      title: '我的维修',
      name: mineMaintain,
      binding: MineMaintainBinding(),
      page: () => const MineMaintainView(),
    ),
    GetPage(
      title: '我的保养',
      name: mineUpkeep,
      binding: MineUpkeepBinding(),
      page: () => const MineUpkeepView(),
    ),
    GetPage(
      title: '巡检点检',
      name: mineInspect,
      binding: MineInspectBinding(),
      page: () => const MineInspectView(),
    ),
    GetPage(
      title: '系统消息',
      name: messageList,
      binding: MessageListBinding(),
      page: () => const MessageListView(),
    ),
    GetPage(
      title: '登录',
      name: login,
      binding: LoginBinding(),
      page: () => const LoginView(),
    ),
  ];
}
